[小ネタ] CloudFormation で作成するリソースにまとめて同じタグ、値をつけたい
AWS事業本部 梶原@福岡オフィスです。
実は先日までこの機能をしらなくて、タグをサポートするリソースのテンプレートに1つ1つ同じタグを追記してました。
そして、マクロでそういう変換を作ろうとしていたりもしました。
いきなり結論です。
新規作成(コンソール)の場合
ステップ 3 > スタックオプションの設定
にあります。
ここで指定したタグは、タグ付けをサポートしているリソースに対して共通でタグ付けが行われます。
新規作成(CLI)の場合
aws cloudformation create-stack --stack-name hoge --tags key1=value1,key2=value2
新規作成(Rain)の場合
rain deploy hoge.yml hoge --tags key1=value1,key2=value2
という感じでタグ指定できます。
既存のスタックの場合
既存のスタックも更新時にスタックオプションの設定で追加、更新できます。
ただ、通常のスタック更新とおなじ動きをするようですので、実施するまえにリソースのリプレースが行われないか、意図しない更新が行われないかなどは十分ご検証ください
やってみた
さっそく適当なテンプレートでいくつかリソースを作成してみました。
S3 バケット
CloudFront
およそタグがサポートされているリソースには共通でタグ付けをすることができるようです。
実はスタックの情報ページにも実は前からあったようです。完全に見逃していましたね。。。
まとめ
テンプレートが触れない場合などにも、CloudFormationの機能として共通のタグ付けができそうです。コスト配分タグや、タグベースのリソース制限などにも活用できそうです。
中でパラメータで分岐して、タグをつけたい!とか言う場合は、スタックをネストさせて別テンプレートを呼びだす際にタグをつけると良さそうです